package src.D_WinSock;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

// URL下载网络资源
public class D05_URL {
    /*
        URL：统一资源定位符，定位互联网上的某一个资源（https://www.baidu.com/）
            组成：协议://ip地址:端口/项目名/资源 （五部分组成，只能少不能多）
    */
    public static void main(String[] args) throws IOException {
        URL url = new URL("https://localhost:8080/index/a.jsp?uname=lele");
        System.out.println(url.getProtocol()); // 协议
        System.out.println(url.getHost()); // 主机ip
        System.out.println(url.getPort()); // 端口
        System.out.println(url.getPath()); // 文件地址
        System.out.println(url.getFile()); // 文件全路径
        System.out.println(url.getQuery()); // 参数

        // 1、下载地址
        URL 别怕变老 = new URL("https://m10.music.126.net/20230321002327/5d3d9d8db573b0c59e097fdd5298a313/yyaac/obj/wonDkMOGw6XDiTHCmMOi/14051872031/02d3/0c72/4711/24f783514959c928f2fe33a830363ae8.m4a");
        // 2、连接到这个资源 HTTP
        HttpURLConnection urlConnection = (HttpURLConnection) 别怕变老.openConnection();
        // 3、io流下载
        InputStream inputStream = urlConnection.getInputStream();
        FileOutputStream fos = new FileOutputStream("bpbl.m4a");
        byte[] bytes = new byte[1024];
        int b;
        while ((b = inputStream.read(bytes)) != -1){
            fos.write(bytes,0,b);
        }
        // 4、关流
        fos.close();
        inputStream.close();
        urlConnection.disconnect();
    }
}
